Program Defil_etoiles;
Uses Crt;
Var Etoiles:Array[0..500] of Record
x,y,Plan:Integer;
End;
nb_et:Word;
Procedure PutPixel(x,y,col:word);assembler;
{dessine le point (x,y) en couleur col (Mode 13h)}
asm
mov ax,0a000h {charge le segment}
mov es,ax
mov ax,320 {offset = Y*320 + X}
mul y
add ax,x
mov di,ax {charge l'offset }
mov al,byte ptr col {charge la couleur}
mov es:[di],al {et place le point}
End;
Begin
Randomize; {initialise le gΘnΘrateur de nombres alΘatoires}
asm mov ax,13h; int 10h End; {dΘclenche le mode 13h }
Repeat {exΘcution une fois par dessin d'Θcran}
For nb_et:=0 to 500 do Begin {nouvelle position pour chaque Θtoile}
With Etoiles[nb_et] do Begin
PutPixel(x,y,0); {efface l'ancien pixel}
Dec(x,Plan shr 5 + 1); {effectue le dΘplacement}
if x <= 0 Then Begin {sortie α gauche ?}
x:=319; {alors rΘinitialisation }
y:=Random(200);
Plan:=Random(256);
End;
PutPixel(x,y,Plan shr 4 + 16); {dessine le nouveau pixel}
End;
End;
delay(100);
Until KeyPressed; {continue jusqu'α ce qu'on frappe une touche}
TextMode(3);
End.
Vous avez donc lα dΘjα le moyen d'adresser la
mΘmoire vidΘo et de dessiner ce que vous voulez !!!
En attendant la suite , amusez vous bien !
(nous reviendrons aussi sur ces histoires de plans
assez compliquΘs α comprendre)